CMD批量转换GIF图片为PNG图片

CMD批量转换GIF图片为PNG图片

前言

某天需要批量将GIF图转为PNG格式,又不想找其他工具,于是写了一个powershell脚本,再套个CMD的壳,双击即可运行,完美。

正文

话不多说,将以下代码另存为转换GIF到PNG.bat文件,放到与GIF同级目录,双击运行即可。

@echo off
cd /d %~dp0
powershell.exe -command "$path=(Get-Location).Path;$gifs=dir -Path $path -Filter '*.gif';if($gifs){$newPath=$gifs[0].DirectoryName+'\PNG';if(-not (Test-Path $newPath)){mkdir $newPath|Out-Null;};foreach($g in $gifs){$bf=[System.Drawing.Bitmap]::FromFile($g.fullName);$newFileName=$newPath+'\'+$g.BaseName+'.png';$bf.Save($newFileName,[System.Drawing.Imaging.ImageFormat]::Png);$bf.Dispose();}Write-Host ('共'+$gifs.Count+'个,转换完成...');}else{Write-Host '当前目录没有找到任何GIF文件!';}"
pause

转换操作如图:
过程

说明

  • 操作系统需 Win 7 或更高
  • 运行后会在同级目录生成PNG子文件夹,转换后的PNG图片都放在里面
  • 暂不支持递归子目录查找GIF,只对当前目录GIF图片有效

后来想了一想,还是弄一个支持递归子目录的好一点,于是改了一下:

@echo off
cd /d %~dp0
powershell.exe -command "$path=(Get-Location).Path;$gifs=dir -Path $path -Filter '*.gif' -Recurse;if($gifs){foreach($g in $gifs){$bf=[System.Drawing.Bitmap]::FromFile($g.fullName);$newPath=$g.DirectoryName+'\PNG';if(-not (Test-Path $newPath)){mkdir $newPath|Out-Null;};$newFileName=$newPath+'\'+$g.BaseName+'.png';$bf.Save($newFileName,[System.Drawing.Imaging.ImageFormat]::Png);$bf.Dispose();}Write-Host ('共'+$gifs.Count+'个,转换完成...');}else{Write-Host '当前目录没有找到任何GIF文件!';};"
pause

用法

  • 另存为转换GIF到PNG-递归.bat文件,放在某个目录下,双击运行即可。会自动查找子目录中,转换后存于每个子目录的PNG目录中。

后记

有条件可以自行修改,支持更多格式(JPG等)。

------END------

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值